From a725d4c7d28fee701b6997cc46cffddefbcd26bf Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Wed, 30 Sep 2026 22:13:07 +0200 Subject: Allow granular routine frequencies like 5/2w --- src/routes/projects/[id]/+page.svelte | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'src/routes/projects/[id]/+page.svelte') diff --git a/src/routes/projects/[id]/+page.svelte b/src/routes/projects/[id]/+page.svelte index 7d9a146..f93e018 100644 --- a/src/routes/projects/[id]/+page.svelte +++ b/src/routes/projects/[id]/+page.svelte @@ -6,11 +6,8 @@ import StatusBadge from '$lib/components/StatusBadge.svelte'; import Button from '$lib/components/Button.svelte'; import Row from '$lib/components/Row.svelte'; - import { - formatFrequency, - parseIntervalToDays, - type RoutineState, - } from '$lib/shared/routine-metrics'; + import type { RoutineState } from '$lib/shared/routine-metrics'; + import { Frequency } from '$lib/shared/frequency'; import SectionTitle from '$lib/components/SectionTitle.svelte'; import { formatDayMonth } from '$lib/shared/temporal'; import { filterByName } from '$lib/shared/filter-items'; @@ -20,7 +17,7 @@ let name = $state(''); let frequency = $state(''); - const frequencyDays = $derived(parseIntervalToDays(frequency)); + const freq = $derived(Frequency.safeParse(frequency)); let showArchived = $state(false); let archiveFilter = $state(''); @@ -83,25 +80,25 @@ /> - {#if frequency !== '' && frequencyDays === null} -

Intervalle invalide — ex : 1d, 2w, 3m, 1y

+ {#if frequency !== '' && freq === null} +

Fréquence invalide — ex : 1d, 2w, 5/2w

{/if} {#if form?.error} @@ -136,7 +133,7 @@ >{routine.name} - {formatFrequency(routine.frequencyDays)} + {Frequency.parse(routine.frequency).format()} {#if routine.lastDoneAt} · fait le {formatDayMonth(routine.lastDoneAt)} {:else} @@ -184,7 +181,7 @@ >{routine.name} - {formatFrequency(routine.frequencyDays)} · archivée le + {Frequency.parse(routine.frequency).format()} · archivée le {formatDayMonth(routine.archivedAt)} -- cgit v1.3